// src/components/ScheduleTable/ScheduleTable.js
import React, { useEffect, useState } from 'react';
import { Table } from 'antd'; // 假设你正在使用Ant Design的Table组件
import { getScheduleAPI } from '@/api/admin';

const CourseSchedule = ({student_id}) => {
  // 定义列配置
  const scheduleColumns = [
    {
      title: '日期',
      dataIndex: 'data',
      key: '1',
    },
    {
      title: '星期',
      dataIndex: 'week',
      key: '2',
    },
    {
      title: '时间',
      dataIndex: 'time',
      key: '3',
    },
    {
      title: '场地',
      dataIndex: 'place',
      key: '4',
    },
    {
      title: '科目',
      dataIndex: 'subject',
      key: '5',
    },
    {
      title: '参与人员',
      dataIndex: 'participant',
      key: '6',
    },
  ];

  // 初始化课程表数据
  const [scheduleData, setScheduleData] = useState([]);

  // 加载课程表数据
  // useEffect(async () => {
  //   try {
  //     console.log('你家：',student_id)
  //     const response = await getScheduleAPI(student_id);
  //     const fetchedData = response.data.schedule;
  //     setScheduleData(fetchedData);
  //   } catch (error) {
  //     console.error('Failed to fetch schedule:', error);
  //   }
  // }, []);
  useEffect(() => {
    let isMounted = true;

    async function fetchData() {
        try {
            const response = await getScheduleAPI(student_id);
            if (isMounted) {
                const fetchedData = response.data.schedule;
                setScheduleData(fetchedData);
            }
        } catch (error) {
            console.error('Failed to fetch schedule:', error);
        }
    }

    fetchData();

    // 返回一个清理函数，用于处理组件卸载时的清理操作
    return () => {
        isMounted = false; // 这里设置标志，用于在异步请求完成前取消setState操作
        // 如果有WebSocket连接、定时器等需要在这里清理，可以添加相应逻辑
        // 例如：webSocket.close(); 或 clearInterval(timer);
    };
}, [student_id]); // 确保student_id在依赖数组中，如果它是动态的

  // 返回课程表组件
  return (
    <Table
      columns={scheduleColumns}
      dataSource={scheduleData}
      pagination={{
        total: scheduleData.length, // 更改total为实际数据长度
        pageSize: 5,
        // 注意：page参数通常由Table组件自动控制，不需要手动指定
      }}
    />
  );
};

export default CourseSchedule;